package com.ruoyi.exam.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 监考分配管理对象 exam_invigilation
 * 
 * @author ruoyi
 * @date 2025-11-11
 */
public class ExamInvigilation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 监考ID */
    private Long invigeId;

    /** 安排ID */
    @Excel(name = "安排ID")
    private Long arrangeId;

    /** 教师ID */
    @Excel(name = "教师ID")
    private Long teacherId;

    /** 工号 */
    @Excel(name = "工号")
    private String teacherNo;

    /** 姓名 */
    @Excel(name = "姓名")
    private String teacherName;

    /** 监考类型（1主监考 2副监考） */
    @Excel(name = "监考类型", readConverterExp = "1=主监考,2=副监考")
    private String invigilatorType;

    /** 分配人 */
    @Excel(name = "分配人")
    private String assignBy;

    /** 分配时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "分配时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date assignTime;

    public void setInvigeId(Long invigeId) 
    {
        this.invigeId = invigeId;
    }

    public Long getInvigeId() 
    {
        return invigeId;
    }

    public void setArrangeId(Long arrangeId) 
    {
        this.arrangeId = arrangeId;
    }

    public Long getArrangeId() 
    {
        return arrangeId;
    }

    public void setTeacherId(Long teacherId) 
    {
        this.teacherId = teacherId;
    }

    public Long getTeacherId() 
    {
        return teacherId;
    }

    public void setTeacherNo(String teacherNo) 
    {
        this.teacherNo = teacherNo;
    }

    public String getTeacherNo() 
    {
        return teacherNo;
    }

    public void setTeacherName(String teacherName) 
    {
        this.teacherName = teacherName;
    }

    public String getTeacherName() 
    {
        return teacherName;
    }

    public void setInvigilatorType(String invigilatorType) 
    {
        this.invigilatorType = invigilatorType;
    }

    public String getInvigilatorType() 
    {
        return invigilatorType;
    }

    public void setAssignBy(String assignBy) 
    {
        this.assignBy = assignBy;
    }

    public String getAssignBy() 
    {
        return assignBy;
    }

    public void setAssignTime(Date assignTime) 
    {
        this.assignTime = assignTime;
    }

    public Date getAssignTime() 
    {
        return assignTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("invigeId", getInvigeId())
            .append("arrangeId", getArrangeId())
            .append("teacherId", getTeacherId())
            .append("teacherNo", getTeacherNo())
            .append("teacherName", getTeacherName())
            .append("invigilatorType", getInvigilatorType())
            .append("assignBy", getAssignBy())
            .append("assignTime", getAssignTime())
            .append("createTime", getCreateTime())
            .toString();
    }
}
